using System;
using System.Collections.Generic;
using System.Text;
using Vj.MathLibrary;
using System.Drawing;
using Vj.ShapeLibrary;

namespace Vj.ParticlesLibrary
{
    public abstract class Emitter//: IShape
    {
        protected List<Particle> particleList;

        public Particle this[int index]
        {
            get { return particleList[index]; }
        }

        protected Vector position;

        public Vector Position
        {
            get { return position; }
            set { position = value; }
        }

        public int ParticleCount
        {
            get { return particleList.Count; }
        }

        public virtual void Draw()
        {
            for (int i = 0; i < particleList.Count; i++)
                particleList[i].Draw();
        }

        protected abstract Particle CreateParticle();

        public abstract bool Update();

    }
}
